<?php

/**
 * 规则输出,用于调试
 * @param type $value
 * @param type $is_end
 */
function p($value, $is_end = '')
{
    echo "<pre>";
    print_r($value);
    echo "</pre>";
    echo "<br />";
    if (!empty($is_end)) {
        die();
    }
}

//C:\Users\Administrator\Desktop\redis-3.0-annotated-unstable\src\redis.c 1716
function initServerConfig(&$server)
{
    // 设置服务器的运行 ID
    // 设置默认配置文件路径
    // 设置默认服务器频率
    // 为运行 ID 加上结尾字符
    // 设置服务器的运行架构
    // 设置默认服务器端口号
    $server->port = REDIS_SERVERPORT;
    // 初始化 LRU 时间
    // 初始化并设置保存条件

    // 初始化和复制相关的状态

    // 初始化 PSYNC 命令所使用的 backlog

    // 设置客户端的输出缓冲区限制

    // 初始化浮点常量

    // 初始化命令表
    // 在这里初始化是因为接下来读取 .conf 文件时可能会用到这些命令

    // 初始化慢查询日志

    // 初始化调试项
}

//C:\Users\Administrator\Desktop\redis-3.0-annotated-unstable\src\redis.c 2050
function initServer()
{
    // 设置信号处理函数

    // 设置 syslog

    // 初始化并创建数据结构

    // 创建共享对象

    // 打开 TCP 监听端口，用于等待客户端的命令请求

    // 打开 UNIX 本地端口

    //创建并初始化数据库结构

    // 创建 PUBSUB 相关结构

    // 为 serverCron() 创建时间事件

    // 为 TCP 连接关联连接应答（accept）处理器

    // 用于接受并应答客户端的 connect() 调用

    // 为本地套接字关联应答处理器

    // 如果 AOF 持久化功能已经打开，那么打开或创建一个 AOF 文件

    // 对于 32 位实例来说，默认将最大可用内存限制在 3 GB

    // 如果服务器以 cluster 模式打开，那么初始化 cluster

    // 初始化复制功能有关的脚本缓存

    // 初始化脚本系统

    // 初始化慢查询功能

    // 初始化 BIO 系统
}


function loadDataFromDisk($server)
{
    // 记录开始时间

    // AOF 持久化已打开？

    // 尝试载入 AOF 文件

    // 打印载入信息，并计算载入耗时长度

    // AOF 持久化未打开

    // 尝试载入 RDB 文件
    loadAppendOnlyFile($server->aof_filename);

    // 打印载入信息，并计算载入耗时长度


}
